package xmlparse;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 利用demo4j解析xml文件
 */
public class XmlParse {
    public static void main(String[] args) throws DocumentException {
        // 1.获取文档对象
        SAXReader saxReader = new SAXReader();
        // 2.利用解析器把xml文件加载到内存中,并返回一个文档对象
        Document document = saxReader.read(new File("D:\\Projects_\\Procjets_idea\\JavaSE\\02-Advanced\\xml\\xml\\student.xml"));
        // 3.获取到根标签
        Element rootElement = document.getRootElement();
        // 4.通过根标签来获取student标签
        // List list = rootElement.elements();
        // System.out.println(list.size());
        List<Element> studentElement = rootElement.elements("student");

        // 装学生对象
        ArrayList<Student> list = new ArrayList<>();

        for (Element element : studentElement) {
            // 获取到id这个属性以及属性值
            String id = element.attribute("id").getValue();
            // 获取name标签以及标签体内容
            String name = element.element("name").getText();
            // 获取name标签以及标签体内容
            String age = element.element("age").getText();

            list.add(new Student(id, name, Integer.parseInt(age)));
        }
        // 遍历
        for (Student student : list) {
            System.out.println(student);
        }
    }
}
